permalink: bases/functionsFunctions are used in Bases to manipulate data from Properties in filters and formulas. See the bases syntax reference to learn more about how you can use functions.
contains()contains(target, query) returns true if the query can be found in the target.target can be a list or text. query should be text.containsNone()containsNone(target, query) returns the inverse of what contains(target, query) would return for the provided target and query.containsAny()containsAny(target, query1, query2, query3...) returns true if any of the query properties are found in the target.target can be a list or text.query parameters provided. They should be text values.containsAll()containsAll(target, query1, query2, query3...) is similar to containsAny() except all query properties must be found in the target.empty()empty(target) returns true if the target is has no items.target may be a list (true if there are no items), text (true if length is zero), or an object (true if there are no keys).notEmpty()notEmpty(target) returns the inverse of what empty(target) would return for the provided target.if()if(logical_expression, value_if_true, value_if_false)if(dateAfter(file.mtime, file.ctime), "Modified", "Unmodified")inFolder()inFolder(file.file, folder) returns true for all notes in the specified folder.file.file.linksTo()linksTo(file.file, path) returns true for all notes which have a link to the specified note.file.file.linksTo(file.file, this.file.path).not()not(condition) can be used to invert any boolean value.taggedWith()taggedWith(file.file, "tag1", "tag2" ...) returns true for all notes which have any of the specified tags.file.file.abs()abs(number) returns the absolute value of the provided number.ceil()ceil(number) returns the provided number rounded up.floor()floor(number) returns the provided number rounded down.round()round(number) returns the provided number rounded to the nearest integer.min()min(number1, number2...) returns the smallest of all the provided numbers.max()max(number1, number2...) returns the largest of all the provided numbers.For all date functions, datetime denotes a text value in the format YYYY-MM-DD[T]HH:mm:ss, and date is a text value in the format YYYY-MM-DD.
now()now() retrieves a datetime at the moment of formula evaluation.date(datetime)date(datetime) extracts the date portion of the provided datetime.time(datetime)time(datetime) extracts the time portion of the provided datetime.dateModify()dateModify(datetime, duration) retrieves a datetime modified by the provided duration.duration may be a number of milliseconds (1 minute is equivalent to 60000)duration may be a text value such as 2h, 2 hour, 2 hours, -2 hoursyear, month, week, day, hour, minute, second, the plural versions, and the single letter abbreviation. month is abbreviated to M.dateDiff()dateDiff(datetime, datetime) retrieves the difference between the two dates in milliseconds.datetime or a date.date parameters are assumed to be at 00:00:00 on the specified date.dateEquals()dateEquals(datetime, datetime) returns true if the two dates are the same.datetime or a date.datetimes, a date and time comparison is performed, otherwise rounded to a date comparison.dateNotEquals()dateNotEquals(datetime, datetime) returns the inverse of dateEquals.dateBefore()dateBefore(datetime, datetime) returns true if the first datetime is before the second datetime.datetime or a date.datetimes, a date and time comparison is performed, otherwise rounded to a date comparison.dateAfter()dateAfter(datetime, datetime) returns true if the first datetime is after the second datetime.datetime or a date.datetimes, a date and time comparison is performed, otherwise rounded to a date comparison.dateOnOrBefore()dateOnOrBefore(datetime, datetime) returns true if the first datetime is before the second datetime or if they are equivalent.datetime or a date.datetimes, a date and time comparison is performed, otherwise rounded to a date comparison.dateOnOrAfter()dateOnOrAfter(datetime, datetime) returns true if the first datetime is after the second datetime or if they are equivalent.datetime or a date.datetimes, a date and time comparison is performed, otherwise rounded to a date comparison.year()year(date) retrieves the year from the input date or datetime.datetime or a date.month()month(date) retrieves the month number from the input date or datetime.datetime or a date.day()day(date) retrieves the day of the month from the input date or datetime.datetime or a date.hour()hour(datetime) retrieves the 24-hour hour from the input datetime.minute()minute(datetime) retrieves the minutes from the input datetime.second()second(datetime) retrieves the seconds from the input datetime.concat()concat(text, text...) merges all parameters into one text value.trim()trim(text) will remove whitespace before an after the text value.trim(" spaces ") will return spaces.title()title(text) will uppercase the first letter of each word in the text value.title("an example sentence") will return An Example Sentenceflat()flat(list) will concatenate all sub-element lists into a single list.flat([[1, 2], [3, 4]]) will return [1, 2, 3, 4].index()index(object, key) will return a value from an object for the provided key.join()join(separator, list) joins the elements of the list together using the provided separator.join(",", [1, 2, 3]) will return 1,2,3.len()len(input) will return the length of the input.input may be a text value, in which case the length of the text is returned.input may be a list, in which case the number of elements in the list is returned.slice()slice(input, start, end) returns a portion of the provided input.input may be a text value or a list.start is the index (starting from 0) of the first element to include.end is an optional index one greater than the last element to include. If omitted the remaining elements are included.unique()unique(list) returns a subset of the provided list where no element is duplicated.